home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / ab20 / ab20_archive / utilities / emulators / apple2emul.lzh / Samp.disk / MUSYS DOCUMENTATION.txt < prev    next >
Text File  |  1991-04-18  |  10KB  |  399 lines

  1.  
  2.  
  3.  
  4.                               MUSYS DOCUMENTATION                       
  5.  
  6.  
  7.         
  8.                          Musys, written by Rich Skrenta
  9.         
  10.                          Quick summary and instructions
  11.         
  12.         
  13.         
  14.         
  15.            I wrote Musys to experiment with multitasking on the Apple.
  16.         
  17.         It was never intended to be especially useful, but rather to
  18.         
  19.         look, from the surface, something like a "big system."  Please
  20.         
  21.         keep this in mind while reading this.  I am writing this because
  22.         
  23.         a few people have expressed interest in Musys, and some of its
  24.         
  25.         nicest features need some explanation.
  26.         
  27.         
  28.         
  29.            First, here are some important terms which I used and what
  30.         
  31.         they mean in the Musys evironment:
  32.         
  33.         
  34.         
  35.            STATUS     Level or importance of job.  1 is an operator, 2 a
  36.                       wheel, below 10 is privileged, below 50 is logged
  37.                       in, and above 60 is not logged in.
  38.         
  39.            PRIORITY   How often a job executes.  In other words, how
  40.                       fast it goes.  1 is fastest, 10 is very slow, 0 is
  41.                       slowest.
  42.         
  43.            RUNSTATUS  Condition of job:
  44.         
  45.                       128  is a safe job.  Left alone by system.
  46.                       64   is a batch job.  Killed when there is no more
  47.                            input or output.
  48.                       32   is not logged in.  Killed after 2 minutes.
  49.                       16   is being logged out.  Killed after output
  50.                            buffer is empty (logout message sent) or 2
  51.                            minutes.
  52.         
  53.            USERID     Up to six letters describing user of a job.
  54.         
  55.         
  56.         
  57.         
  58.         
  59.         
  60.         
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                               MUSYS DOCUMENTATION                       
  71.  
  72.  
  73.         
  74.         
  75.            First of all, you might want to get into the system and see
  76.         
  77.         what I am talking about.  Brunning MULOAD puts Musys in the
  78.         
  79.         language card and gives you 18 jobs max.  Brunning MUSYS gives
  80.         
  81.         you 8 jobs max.
  82.         
  83.         
  84.            After you Brun in, nothing will appear to happen except a
  85.         
  86.         short line will appear.  That is the cursor.  You can hit return
  87.         
  88.         or ctrl-c to start.  It will print a short login message, saying
  89.         
  90.         what job you are, and give you the "@" prompt. (you can change
  91.         
  92.         it).  This is the exec level, from which most commands are
  93.         
  94.         typed.
  95.         
  96.         
  97.            Now, a word about jobs.  Musys has real jobs.  It doesn't
  98.         
  99.         just make it look like they're there, they really are.  8 pages
  100.         
  101.         of memory are allocated for each job, 5 of which are used (the
  102.         
  103.         other 3 are wasted, but it doesn't matter).  Each job has an
  104.         
  105.         input device, an input buffer, an output device, and an output
  106.         
  107.         buffer.  Every MUSYS cycle (once through the big loop) Musys
  108.         
  109.         will check the input device for data.  If there is some, it
  110.         
  111.         pushes it onto the input buffer (all buffers are fifo, by the
  112.         
  113.         way).  It also looks for something in the out buffer, and sends
  114.         
  115.         it to the output device, if it can.
  116.         
  117.         
  118.         
  119.            Now, for my device list.  These are the devices available:
  120.         
  121.            1     SYSTEM CONSOLE
  122.                       Fancy name for combination of keyboard & screen.
  123.         
  124.            2     PRINTER (slot 1)
  125.            3     D.C. HAYES MICROMODEM (slot 2)
  126.           ...
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                               MUSYS DOCUMENTATION                       
  137.  
  138.  
  139.           ...
  140.           (now, the hard part)
  141.         
  142.            16-31   PSEUDO-TERMINALS
  143.         
  144.                        Well, almost.  Devices 16-31 are 256 byte fifo
  145.         
  146.                        buffers which can be used just like devices.
  147.         
  148.                        Stuff output to them goes in, and input comes
  149.         
  150.                        out.  They are very useful.
  151.         
  152.         
  153.         
  154.            About the parser:  I wrote a nice parser for Musys.  The
  155.         
  156.         first feature is that you don't have to type the whole command,
  157.         
  158.         only the first unique letters.  For example, there are the
  159.         
  160.         commands TEST and TIME.  If you typed T return, you get an
  161.         
  162.         ambiguous command error.  But you can type TE to start tester,
  163.         
  164.         or TI to read or set the time.  Simple, huh?  By the way, you
  165.         
  166.         can type the whole command, if you want.
  167.         
  168.         
  169.            Second feature:  the ? option.
  170.         
  171.         Typing a ? in gives you the options for a particular level.  For
  172.         
  173.         example, typing just ? return gives you all the exec commands.
  174.         
  175.         Typing DO ? return gives you the options for the DO command.
  176.         
  177.         Got it?
  178.         
  179.         
  180.            Oh, one more thing.  Commands and options can be seperated by
  181.         
  182.         any of the following:
  183.         
  184.           (space) "(),./:;=<>
  185.         
  186.         so, any of the following would do the same thing.
  187.         
  188.         DATE 6/6/67
  189.         DAT   "06/06/67"
  190.         DATE      6,6,   67
  191.         DAT   (6..;6;;=67)>
  192.         
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                               MUSYS DOCUMENTATION                       
  203.  
  204.  
  205.         Isn't that nice?
  206.            A word about control characters.  Musys recognizes the
  207.         
  208.         following controls:
  209.         
  210.         
  211.         
  212.            C          two control c's bring you back to the exec
  213.                       immediately, one at the next input.
  214.         
  215.            H          delete
  216.            L          clear screen & retype line
  217.            O          suspend/restore output
  218.            Q          undo a ctrl-s
  219.            R          retype line
  220.            S          put job on hold until ctrl-c or ctrl-q
  221.            T          print out job information
  222.         
  223.         
  224.         
  225.            Finally, the commands.  I wrote a lot of commands for Musys.
  226.         
  227.         Most of them, however, just do things to the system itself.  No
  228.         
  229.         practical application, you see.
  230.         
  231.         
  232.         
  233.         Anyway, the Most Important Command:
  234.         
  235.            SYSTAT     Tells you all about all of the jobs currently
  236.         
  237.         running.  Gives the devices (input,output), the userid, name of
  238.         
  239.         the program it is currently in, etc.
  240.         
  241.         
  242.         Next command:
  243.         
  244.            DO         /OUTPUT:
  245.                       /PRIORITY:
  246.                       /STATUS:
  247.         
  248.         The DO command is for batch jobs.  When you type DO return, it
  249.         
  250.         will open a pseudo-terminal and tell you.  Then you can type in
  251.         
  252.         commands to the # prompt, and they will to into the fifo device.
  253.         
  254.         When you are satisfied, hit ctrl-z, and if there are no
  255.         
  256.         problems, Musys will make a job whose INPUT device is the pseudo
  257.         
  258.         terminal you just put commands into.
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                               MUSYS DOCUMENTATION                       
  269.  
  270.  
  271.         
  272.         POSSIBLE ERRORS:   NO FREE PSEUDO-TERMINALS
  273.                            NO FREE JOB SLOTS
  274.                            BUFFER OVERFLOW
  275.         
  276.         The output option allows you to send the job output somewhere
  277.         
  278.         (normally, it goes to device 0, the null device).  Example:
  279.         
  280.         DO O 2
  281.         
  282.         would send the do jobs output to the printer.
  283.         
  284.         
  285.            Remember, some commands require a special status, such as
  286.         
  287.         operator, to do.  I will briefly explain a few more commands.
  288.         
  289.         The rest should be self explanatory.
  290.         
  291.         
  292.         KTIME is the clock constant.  Fiddling with this make make the
  293.         
  294.               time a bit more accurate.
  295.         
  296.         HALT  puts you in the monitor to make changes.  You can restart,
  297.         
  298.               with all of your jobs intact, by typing ctrl-y return.
  299.         
  300.         PICKUP  picks up the modem.  Someone should then be able to log
  301.         
  302.               in on the modem with a few ctrl-c's, but you may have to
  303.         
  304.               type pickup a few times at first.
  305.         
  306.         HANGUP  hangs up the modem
  307.         
  308.         TIME   read or set time
  309.         
  310.         DATE   read or set date
  311.         
  312.         DAYTIME  read time and date.
  313.         
  314.         LOGIN (userid)  logs in a wheel, priority 1 with the indicated
  315.         
  316.         usreid.
  317.         
  318.         TERMINAL   HALF        half duplex
  319.                    FULL        full duplex
  320.                    OPERATOR    secret passwords make job an operator
  321.                                job. (oh well, the pass is "stick")
  322.         
  323.         
  324.         
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                               MUSYS DOCUMENTATION                       
  335.  
  336.  
  337.         
  338.         
  339.            Why all the protection junk, you ask?  Well, about the most
  340.         
  341.         use I've found for my program is "terminal wars".  In this game,
  342.         
  343.         formerly playable only on big systems at a great risk, you try
  344.         
  345.         to become an operator and blow your opponent's jobs away.  Well,
  346.         
  347.         now the lowly Apple owner can have fun, too and blow away all
  348.         
  349.         the jobs he wants to.
  350.         
  351.         
  352.            And just to make it sneakier, there is a strange trapdoor in
  353.         
  354.         the system.  If you type ctrl-shift-n, you instantly become job
  355.         
  356.         3, an operator, and are completely safe from attacks.  People on
  357.         
  358.         the modem cant do this.
  359.         
  360.         
  361.         
  362.            Not very useful, but it can be a lot of fun.  The first 3
  363.         
  364.         days, at least.  GOOD LUCK!!
  365.         
  366.         
  367.         
  368.         Special thanks to Tom Markson, the only other person who really
  369.         
  370.         knows what it can do.
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397. 
  398.  
  399.